b82e3a75e295a32886abbebda16d3ca24ed113de,src/main/java/org/icij/sql/concurrent/MySQLConcurrentMapAdapter.java,MySQLConcurrentMapAdapter,remove,#Connection#Object#Object#,146

Before Change



		try (final PreparedStatement q = c.prepareStatement("DELETE FROM " + table + " WHERE " +
				codec.getKeyName() + "=?;")) {
			q.setString(1, codec.encodeKey(key));
			result = q.executeUpdate();
		} catch (SQLException e) {
			c.rollback();

After Change


			throw e;
		}

		final Map<String, Object> values = codec.encodeKey(key);
		values.putAll(codec.encodeValue(value));

		final Set<String> keySet = values.keySet();

		try (final PreparedStatement q = c.prepareStatement("DELETE FROM " + table + " WHERE " +
				String.join(" AND ", keySet.stream().map(k -> k + " = ?").toArray(String[]::new)) + ";")) {
			int i = 1;
			for (String k: keySet) {
				q.setObject(i++, values.get(k));
			}

			result = q.executeUpdate();